Kurt Hsu's blog

The Rails developer in taiwan.


  • 首頁

  • 標籤

  • 分類

  • 歸檔

[CS50]2019哈佛大學程式課程Week8

發表於 2020-10-02 分類於 CS50
  • 2019年的CS50: 只有英文字幕
  • 導讀哈佛大學程式課程: 胡立的中文導讀
    注意: 中文導讀不確定是幾年的, 有可能會有些許對不上或順序不對, 但最後重點都會講到

系列文章:

  • [CS50]2019哈佛大學程式課程Week0
  • [CS50]2019哈佛大學程式課程Week1
  • [CS50]2019哈佛大學程式課程Week2

database

我們紀錄使用者的資訊可以用 cookie or csv 檔 text 檔之類的, 但這很沒有安全性, 所以可以記錄在 database 裡面

data type

存的資料有很多種 type, 每一種佔用的記憶體不同, 例如 integer 和 bigint 都是存數字, 甚至 bigint 因為用的記憶體空間較大, 可以存遠比 integer 更大的數字, 但就是效能比較不好
現在的 sql 也都很聰明, 例如字串就會依據輸入的字元多寡而去決定該用多少記憶體, 但 default 值有上限, 除非自己定義更多的空間, 例如在 sqlite string 預設最多 255 個字元, 可以設更少或更多, 取決用途
最後影響效能的還有 type 存在記憶體的方式不一樣, 例如 varchar 就會比 char 慢

注意

要注意 race condition, 善用 lock 讓當前的 table 暫時不能給別的使用者更新
要注意 database injection, database 會盲目地執行使用者輸入的字串, 所以程式碼要執行的 sql 指令最好是動態產生有做過一些處理的

課程上還有介紹蠻多基礎的東西, 但自己只記錄一些自己還不知道或者比較重要的

# CS50
[CS50]2019哈佛大學程式課程Week7
[CS50]2019哈佛大學程式課程Week9
  • 文章目錄
  • 本站概要

Kurt Hsu

Progress One Percent Every Day
171 文章
55 分類
163 標籤
RSS
  1. 1. database
  2. 2. data type
  3. 3. 注意
© 2020 Kurt Hsu
由 Hexo 強力驅動 v3.8.0
|
主題 – NexT.Muse v7.3.0